﻿///***************************************************************
/// 시  스  템 : Updms.Com
/// 단위시스템 : COM
/// 계      층 : Presentation Layer
/// 프로그램명 : Com3013p
/// 파  일  명 : Com3013p.aspx.cs
/// 설      명 : 파일다운로드
///***************************************************************
/// 수정ID 일자       이름     내용
///---------------------------------------------------------------
/// CH001  2008-09-09 송시명   최초 작성
///***************************************************************
using System;
using System.Data;
using System.IO;
using System.Text;
using System.Web;

using SMFramework.Configuration;
using SMFramework.Data;
using SMFramework.Utility;

using Base.Dac;
using Base.AppFramework;

using Updms.Com.Exe;


namespace Updms.Com
{
	public partial class Com3013p : Updms.Common.BaseClass.PageBase
	{
		#region 콘트롤

		public static readonly string PID = "Com3013p";

		private string gs_hash_key = "";

		#endregion

		#region Page_Load

		protected void Page_Load(object sender, EventArgs e)
		{
			if (CheckViewAuth())
			{
				SetInit();
				DownloadFile();
			}
		}
		
		#endregion

		#region CheckViewAuth

		//인증검사
		private bool CheckViewAuth()
		{
			using (AccessCheck access = new AccessCheck())
			{
				//접근권한 체크
				if (!access.CheckPgmAccessGrant(PID, USER_ID, ACCESS_LOG_INFO))
				{
					Response.Redirect(URL_NO_AUTHORITY_REDIRECT_POPUP);	//사용자의 권한은 요청하신 페이지를 볼 수 없습니다
					return false;
				}
				return true;
			}
		}

		#endregion

		#region SetInit

		// SetInit
		private void SetInit()
		{
			if (Request.QueryString["hash_key"] != null)
			{
				gs_hash_key = Server.UrlDecode(Request.QueryString["hash_key"].ToString().Trim());
			}
		}
		
		#endregion

		#region DownloadFile

		// DownloadFileMulti
		private void DownloadFile()
		{
			DataSet lo_ds = new DataSet();
			DataPack lo_dp = new DataPack();			
			
			lo_dp.AddProperty("hash_key", typeof(string), gs_hash_key);
			using(Com3013p_NT _Com3013p_NT = new Com3013p_NT())
			{
				lo_ds.Merge(_Com3013p_NT.GetFileInfoByHashKey(lo_dp));
			}

			if (DataSetUtil.GetRowCount(lo_ds, "UPDMS_COM_FILE") > 0)
			{
				string file_dir = DataSetUtil.GetFldStr(lo_ds, "UPDMS_COM_FILE", "File_Dir");
				string file_nm = DataSetUtil.GetFldStr(lo_ds, "UPDMS_COM_FILE", "File_Nm");
				string file_path = FILE_PATH_DOWNLOAD + "\\" + file_dir + "\\" + file_nm;

				//실제로 파일이 있는지 확인
				if (FileUtil.IsFileExist(file_path))
				{
					try
					{
						FileUtil.FileDownload(file_path, file_nm);
					}
					catch (Exception e)
					{
						SMEventLog.WriteErrorLog(e.ToString());
					}
					finally
					{
					}
				}
				else
				{
					CallMsgBoxInAjax("MSG_ERR_127");	//X.다운로드할 파일이 없습니다.
				}
			}
			else
			{
				CallMsgBoxInAjax("MSG_ERR_127");	//X.다운로드할 파일이 없습니다.
			}
		}

		#endregion

		#region SetTimeStamp

		//SetLastVer
		public String SetTimeStamp()
		{
			return WebConfig.Updms["App.TimeStamp"];
		}

		#endregion

	}
}
